﻿using System.Drawing;
using System.Text;
using FontExport;

Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

var hzkFont = new HzkFont();

// 字体高度和宽度与字号的关系：
// | 字体高度 | 字体宽度 | 字号 |
// |---------|----------|------|
// | ( 8,16] | 16       | 12   |
// | (16,24] | 24       | 16   |
// | (24,32] | 32       | 24   |
// | (32,40] | 40       | 32   |
// 其中字体高度控制HZK字库中的字符大小即fontsize

hzkFont.FontHeight = 10;
hzkFont.FontWidth = TransFontInfo.GetFontWidth(hzkFont.FontHeight);
hzkFont.X = 0;
hzkFont.Y = 0;
//hzkFont.Font = new Font("宋体", TransFontInfo.GetFontSize(hzkFont.FontHeight));
// 此处需要根据需要生成点阵字符的高度去获取对应字号字体的信息，其中字号计算修改为高度*0.75
hzkFont.Font = new Font("宋体", (float)(hzkFont.FontHeight * 0.75));
hzkFont.FileName = "HZK" + hzkFont.FontHeight.ToString();

hzkFont.GenerateLattice(HzkFont.SupportedEncoding.GB2312);


// 测试打印"华中数控"
FontTest.PrintFont(hzkFont.FileName, hzkFont.FontWidth, hzkFont.FontHeight, 0xBB, 0xAA);
FontTest.PrintFont(hzkFont.FileName, hzkFont.FontWidth, hzkFont.FontHeight, 0xD6, 0xD0);
FontTest.PrintFont(hzkFont.FileName, hzkFont.FontWidth, hzkFont.FontHeight, 0xCA, 0xFD);
FontTest.PrintFont(hzkFont.FileName, hzkFont.FontWidth, hzkFont.FontHeight, 0xBF, 0xD8);
